import type { PropType } from 'vue';

export const treeProps = {
	items: {
		type: Array as PropType<any[]>,
		default: () => [],
	},
	counterData: {
		type: Object,
		default: () => {},
	},
	load: {
		type: Function,
	},
	multiple: {
		type: Boolean,
		default: false,
	},
	expandedKeys: {
		type: Array as PropType<string[]>,
		default: () => [],
	},
	selectedKeys: {
		type: Array as PropType<string[]>,
		default: () => [],
	},
	showDefaultIcon: {
		type: Boolean,
		default: false,
	},
};

export const treeNodeIconProps = {
	iconCustomCode: {
		type: Boolean,
		default: false,
	},
	iconScriptCode: {
		type: String,
	},
	cssClass: {
		type: String,
	},
	imagePath: {
		type: String,
	},
	showDefaultIcon: {
		type: Boolean,
		default: false,
	},
};

export const treeNodeTitleProps = {
	textCustomCode: {
		type: Boolean,
		default: false,
	},
	textScriptCode: {
		type: String,
	},
	html: {
		type: String,
	},
	text: {
		type: String,
		default: '',
	},
	tooltip: {
		type: String,
		default: '',
	},
	cssName: {
		type: String,
		default: '',
	},
	contextMenus: {
		type: Array,
	},
	counterMode: {
		type: Number,
	},
	count: {
		type: Number,
	},
	allowEditText: {
		type: Boolean,
		default: false,
	},
};
